'use strict';
const dayjs = require("dayjs");
const {getDefaultModelConfig} = require("../../utils/common");
const { formatDate } = require("../../utils/index");

module.exports = app => {
    const { STRING, INTEGER, DATE, TINYINT, TEXT } = app.Sequelize;
    return app.model.define(
        'StartupSubsidy',
        {
            id: {type: INTEGER, primaryKey: true, autoIncrement: true},
            name: STRING(50), // 姓名
            gender: {type: STRING, defaultValue: '', comment: '性别：男，女'}, // 性别
            ethnicity: STRING(20), // 民族
            photo: STRING(255), // 一寸彩照
            household_address: STRING(255), // 户籍地址
            phone: STRING(11), // 联系电话
            id_card: STRING(18), // 身份证号码
            employment_cert_number: STRING(50), // 《就业创业证》号码
            subsidy_category: {type: STRING, defaultValue: '', comment: '类别：高校毕业生一次性创业补贴、就业困难人员一次性创业补贴、返乡创业人员一次性创业补贴'}, // 类别
            personnel_category: TEXT, // 人员类别（多选）
            project_name: STRING(200), // 创办项目名称
            business_address: STRING(255), // 经营地址（或网址）
            registration_date: {
                type: DATE,
                get() {
                    return formatDate(this.getDataValue('registration_date'), 'YYYY-MM-DD');
                }
            }, // 工商注册时间
            credit_code: STRING(50), // 统一社会信用代码
            employment_count: {type: INTEGER, defaultValue: 0, comment: '带动就业人数'}, // 带动就业人数
            bank_name: STRING(100), // 开户行全称
            bank_account: STRING(30), // 个人银行账号
            status: {type: TINYINT, defaultValue: 0, comment: '审核状态：0-待审核，1-审核通过，2-审核拒绝'}, // 审核状态
            review_remark: TEXT, // 审核备注
            reviewer: STRING(50), // 审核人
            ...getDefaultModelConfig(app)
        },
        {
            tableName: 'startup_subsidy',
            timestamps: true,
            createdAt: 'create_time',
            updatedAt: 'update_time'
        }
    );
};
